/*
 * SyntaticAnalyzer.h
 *
 *  Created on: 25/04/2009
 */

#ifndef SYNTATICANALYZER_H_
#define SYNTATICANALYZER_H_
#include"../LexicalAnalyzer/LexicalAnalyzer.h"
#include"../LexicalAnalyzer/Token.h"
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <cctype>
#include <list>

using namespace std;

class SyntaticAnalyzer {
private:
	list<Token> listOftokens;
	Token token;

public:
	SyntaticAnalyzer(list<Token>);
	virtual ~SyntaticAnalyzer();
	void analyzer();
	void nextToken();

	void PROGRAM ();
	void PREAMBLE();
	void CORE();
	void DECLARATION();
	void COMMAND();
	void LIST_ID();
	void L_ID();
	void DIMENSION();
	void CONDICIONAL();
	void LOOP();
	void IN();
	void OUT();
	void ASSIGNMENT();
	void EXPRESSION();
	void CONDICIONAL_ELSE();
	void PARAMETER();
	void P();
	void PARA();
	void SIMPLE_EXPRESSION();
	void TERM();
	void ADD_TERM();
	void FACTOR();
	void MULT_FACTOR();
	void VARIABLE();
	void ERRO(int);
	void S_E();


};

#endif /* SYNTATICANALYZER_H_ */
